package com.itlaobing.reflection.method;

import com.itlaobing.reflection.loader.ItlaobingClassLoader;

import java.lang.reflect.Method;
/**
 * 1、java.lang.reflect.Method实例 表示 方法
 * 2、通过指定类获取方法: getMethods() / getDeclaredMethods()
 */
public class GetMethodTest1 {

    public static void main(String[] args) throws Exception{

        final String base = "D:/test" ;
        String name = "com.itlaobing.reflection.Child" ;
        ClassLoader loader = new ItlaobingClassLoader( base );
        Class<?> aClass = Class.forName( name , true , loader );

        // 从 aClass类 中获取 public 修饰的方法 及 从父类中继承的 public 方法
        Method[] methods = aClass.getMethods();
        for (int i = 0; i < methods.length ; i++) {
            Method m = methods[ i ] ;
            System.out.println( m );
        }

        System.out.println( "- - - - - - - - - - - - - - - - - - - -" );

        // 从 aClass类 中获取所有的方法(只要是该类声明的方法都获取，不考虑访问修饰符的影响)
        methods = aClass.getDeclaredMethods();
        for (int i = 0; i < methods.length ; i++) {
            Method m = methods[ i ] ;
            System.out.println( m );
        }

    }
}
